package com.xxgc.eow.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;

/**
 * <p>
 * 企业表
 * </p>
 *
 * @author Mr.Abel
 * @since 2023-05-21
 */
@Getter
@Setter
@Schema(name = "Company", description = "企业表")
public class Company implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "企业id")
    @TableId(value = "company_id", type = IdType.AUTO)
    private Integer companyId;
    @NotNull
    @Schema(description = "企业名")
    private String companyName;
    @NotNull
    @Schema(description = "企业介绍")
    private String companyProfile;
    @NotNull
    @Schema(description = "企业头像")
    private String companyUrl;
    @NotNull
    @Schema(description = "企业人数")
    private Integer companyNum;
    @NotNull
    @Schema(description = "行业类型id")
    private Integer industryTypeId;
    @NotNull
    @Schema(description = "企业全称")
    private String companyFullname;
    @NotNull
    @Schema(description = "法定代表人")
    private String legalPerson;
    @NotNull
    @Schema(description = "注册资本")
    private String registeredCapita;
    @NotNull
    @Schema(description = "成立日期")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate establishDate;
    @NotNull
    @Schema(description = "统一信用编码")
    private String code;
    @NotNull
    @Schema(description = "上班时间")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "HH:mm:ss")
    private LocalTime toWork;
    @NotNull
    @Schema(description = "下班时间")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "HH:mm:ss")
    private LocalTime offWork;
    @NotNull
    @Schema(description = "休息类型(单休，双休等）")
    private String restType;
    @NotNull
    @Schema(description = "工作类型（弹性工作等）")
    private String jobType;
    @NotNull
    @Schema(description = "企业规模")
    private Integer companySize;
    @NotNull
    @Schema(description = "企业融资类型ID")
    private Integer financingId;

    @Schema(description = "创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    @Schema(description = "销毁时间")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime destroyTime;

    @Schema(description = "假删除状态")
    private Integer tip;
    private Financing financing;

    private Industrytype industrytype;



    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyProfile() {
        return companyProfile;
    }

    public void setCompanyProfile(String companyProfile) {
        this.companyProfile = companyProfile;
    }

    public Integer getCompanyNum() {
        return companyNum;
    }

    public void setCompanyNum(Integer companyNum) {
        this.companyNum = companyNum;
    }

    public Integer getIndustryTypeId() {
        return industryTypeId;
    }

    public void setIndustryTypeId(Integer industryTypeId) {
        this.industryTypeId = industryTypeId;
    }

    public String getCompanyFullname() {
        return companyFullname;
    }

    public void setCompanyFullname(String companyFullname) {
        this.companyFullname = companyFullname;
    }

    public String getLegalPerson() {
        return legalPerson;
    }

    public void setLegalPerson(String legalPerson) {
        this.legalPerson = legalPerson;
    }

    public String getRegisteredCapita() {
        return registeredCapita;
    }

    public void setRegisteredCapita(String registeredCapita) {
        this.registeredCapita = registeredCapita;
    }

    public LocalDate getEstablishDate() {
        return establishDate;
    }

    public void setEstablishDate(LocalDate establishDate) {
        this.establishDate = establishDate;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public LocalTime getToWork() {
        return toWork;
    }

    public void setToWork(LocalTime toWork) {
        this.toWork = toWork;
    }

    public LocalTime getOffWork() {
        return offWork;
    }

    public void setOffWork(LocalTime offWork) {
        this.offWork = offWork;
    }

    public String getRestType() {
        return restType;
    }

    public void setRestType(String restType) {
        this.restType = restType;
    }

    public String getJobType() {
        return jobType;
    }

    public void setJobType(String jobType) {
        this.jobType = jobType;
    }

    public Integer getCompanySize() {
        return companySize;
    }

    public void setCompanySize(Integer companySize) {
        this.companySize = companySize;
    }

    public Integer getFinancingId() {
        return financingId;
    }

    public void setFinancingId(Integer financingId) {
        this.financingId = financingId;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public LocalDateTime getDestroyTime() {
        return destroyTime;
    }

    public void setDestroyTime(LocalDateTime destroyTime) {
        this.destroyTime = destroyTime;
    }

    public Integer getTip() {
        return tip;
    }

    public void setTip(Integer tip) {
        this.tip = tip;
    }

    public String getCompanyUrl() {
        return companyUrl;
    }

    public void setCompanyUrl(String companyUrl) {
        this.companyUrl = companyUrl;
    }

    public Financing getFinancing() {
        return financing;
    }

    public void setFinancing(Financing financing) {
        this.financing = financing;
    }

    public Industrytype getIndustrytype() {
        return industrytype;
    }

    public void setIndustrytype(Industrytype industrytype) {
        this.industrytype = industrytype;
    }

    public Company() {
    }


    public Company(Integer companyId, String companyName, String companyProfile, String companyUrl, Integer companyNum, Integer industryTypeId, String companyFullname, String legalPerson, String registeredCapita, LocalDate establishDate, String code, LocalTime toWork, LocalTime offWork, String restType, String jobType, Integer companySize, Integer financingId, LocalDateTime createTime, LocalDateTime destroyTime, Integer tip) {
        this.companyId = companyId;
        this.companyName = companyName;
        this.companyProfile = companyProfile;
        this.companyUrl = companyUrl;
        this.companyNum = companyNum;
        this.industryTypeId = industryTypeId;
        this.companyFullname = companyFullname;
        this.legalPerson = legalPerson;
        this.registeredCapita = registeredCapita;
        this.establishDate = establishDate;
        this.code = code;
        this.toWork = toWork;
        this.offWork = offWork;
        this.restType = restType;
        this.jobType = jobType;
        this.companySize = companySize;
        this.financingId = financingId;
        this.createTime = createTime;
        this.destroyTime = destroyTime;
        this.tip = tip;
    }

    public Company(String companyName, String companyProfile, String companyUrl, Integer companyNum, Integer industryTypeId, String companyFullname, String legalPerson, String registeredCapita, LocalDate establishDate, String code, LocalTime toWork, LocalTime offWork, String restType, String jobType, Integer companySize, Integer financingId, LocalDateTime createTime, LocalDateTime destroyTime, Integer tip) {
        this.companyName = companyName;
        this.companyProfile = companyProfile;
        this.companyUrl = companyUrl;
        this.companyNum = companyNum;
        this.industryTypeId = industryTypeId;
        this.companyFullname = companyFullname;
        this.legalPerson = legalPerson;
        this.registeredCapita = registeredCapita;
        this.establishDate = establishDate;
        this.code = code;
        this.toWork = toWork;
        this.offWork = offWork;
        this.restType = restType;
        this.jobType = jobType;
        this.companySize = companySize;
        this.financingId = financingId;
        this.createTime = createTime;
        this.destroyTime = destroyTime;
        this.tip = tip;
    }


    @Override
    public String toString() {
        return "Company{" +
                "companyId=" + companyId +
                ", companyName='" + companyName + '\'' +
                ", companyProfile='" + companyProfile + '\'' +
                ", companyUrl='" + companyUrl + '\'' +
                ", companyNum=" + companyNum +
                ", industryTypeId=" + industryTypeId +
                ", companyFullname='" + companyFullname + '\'' +
                ", legalPerson='" + legalPerson + '\'' +
                ", registeredCapita='" + registeredCapita + '\'' +
                ", establishDate=" + establishDate +
                ", code='" + code + '\'' +
                ", toWork=" + toWork +
                ", offWork=" + offWork +
                ", restType='" + restType + '\'' +
                ", jobType='" + jobType + '\'' +
                ", companySize=" + companySize +
                ", financingId=" + financingId +
                ", createTime=" + createTime +
                ", destroyTime=" + destroyTime +
                ", tip=" + tip +
                ", financing=" + financing +
                ", industrytype=" + industrytype +
                '}';
    }
}

